<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.prime.com.tr/ui">

<ui:composition template="/template/template-padrao.xhtml">

	<ui:define name="titulo">Manter lançamentos</ui:define>

	<ui:define name="baseCorpo">
		
		<h:form id="lancamentoForm">
		
			<script type="text/javascript">
				jQuery(function(){
					jQuery('table[id*=tipoLancamento] > tbody > tr > td > label').css("font-weight", "normal");
					jQuery('table[id*=vinculoLancamento] > tbody > tr > td > label').css("font-weight", "normal");
					
					jQuery('input[id*=valor]').maskMoney({symbol:'R$ ', showSymbol:true, thousands:'.', decimal:',', symbolStay: true});
					
					jQuery('input[name*=vinculoLancamento]:radio').change(function () { 
						mostrarClienteVeiculo();
					});
					
					mostrarClienteVeiculo();
					
				});
				
				function mostrarClienteVeiculo(){
					var valor = jQuery('input[name*=vinculoLancamento]:checked').val();
					jQuery('table[id*=tabelaCliente]').hide();
					jQuery('table[id*=tabelaVeiculo]').hide();
					if(valor == 'V'){
						jQuery('table[id*=tabelaVeiculo]').show();
					}else if(valor == 'C'){
						jQuery('table[id*=tabelaCliente]').show();
					}
				}
				
			</script>
		
			<h1 class="titulo-tela">Manter lançamentos</h1>

			<p:panel id="panelLancamento">
			
			<h1 class="ui-panel-titlebar ui-widget-header ui-corner-all">Dados cadastrais</h1>
			
				<table cellspacing="10" width="100%">
					<tr>
						<td colspan="3">
							<h:outputLabel for="tipoLancamento" value="* Tipo de lançamento:" />
							<br />
							<h:selectOneRadio id="tipoLancamento" label="Tipo de lançamento"
									value="#{manterLancamentosBean.lancamento.tipo}">
								    <f:selectItems value="#{manterLancamentosBean.tiposLancamento}" />
							</h:selectOneRadio>
						</td>
					</tr>
					
					<tr>
						<td>
							<h:outputLabel for="dataLancamento" value="* Data do lançamento:" />
							<br />
							<p:calendar id="dataLancamento" label="Data do lançamento" pattern="dd/MM/yyyy"
								maxlength="10" value="#{manterLancamentosBean.lancamento.dtLancamento}" />
						</td>
					</tr>
					<tr>
						<td>
							<h:outputLabel for="dataVencimento" value="* Data do vencimento:" />
							<br />
							<p:calendar id="dataVencimento" label="Data do vencimento" pattern="dd/MM/yyyy"
								maxlength="10" value="#{manterLancamentosBean.lancamento.dtVencimento}" />
						</td>
					</tr>
					
				</table>
				
				<br />
			
				<table cellspacing="10">
				
					<tr>
						<td>
							<h:outputLabel for="descricao" value="Descrição:" />
							<br />
							<p:inputText id="descricao" maxlength="100" style="width:350px; "
								value="#{manterLancamentosBean.lancamentoItem.descricaoItem}" label="Descrição" />
			            </td>
			            <td>
							<h:outputLabel for="quantidade" value="Quantidade:" />
							<br />
							<p:inputText id="quantidade" maxlength="6"
								value="#{manterLancamentosBean.lancamentoItem.quantidade}" label="Quantidade" />
			            </td>
			            <td>
							<h:outputLabel for="valor" value="Valor unitário:" />
							<br />
							<p:inputText id="valor" maxlength="100" converter="moedaDoubleConverter"
								value="#{manterLancamentosBean.lancamentoItem.valor}" label="Valor" />
			            </td>
			            <td>
			            	<br />
							<p:commandButton value="Adicionar" update="msgSistema, lancamentoForm" image="ui-icon ui-icon-plusthick"
					 			actionListener="#{manterLancamentosBean.adicionarItens}" />
			            </td>
					</tr>
					
				</table>

					<p:dataTable id="listaItens" var="lancamentoItem" 
						widgetVar="lancamentosTableItens" style="padding-left:10px; padding-bottom:10px;"
						paginator="true" rows="10" paginatorPosition="bottom"
						value="#{manterLancamentosBean.lancamentoItems}"
			            emptyMessage="Nenhum item cadastrado">
			            
			            <p:column style="width:40%;" 
				                headerText="Descrição" filterMatchMode="contains">
				            <h:outputText value="#{lancamentoItem.descricaoItem}" />
				        </p:column>
				        
				        <p:column style="width:6%;" 
				                headerText="Quantidade" filterMatchMode="contains">
				            <h:outputText value="#{lancamentoItem.quantidade}" />
				        </p:column>
				        
				        <p:column style="width:6%;" 
				                headerText="Valor unitário" filterMatchMode="contains">
				            <h:outputText value="#{lancamentoItem.valor}" converter="moedaDoubleConverter" />
				        </p:column>
				        
			         	<p:column style="width:6%;" 
				                headerText="Valor total" filterMatchMode="contains">
				            <h:outputText value="#{lancamentoItem.valorTotal}" converter="moedaDoubleConverter" />
				        </p:column>
				        
				        <p:column style="width:3%;" headerText="Ações">
				            <p:commandButton oncomplete="confirmationItem.show()" image="ui-icon ui-icon-trash" immediate="true">
				               <f:setPropertyActionListener value="#{lancamentoItem}"
				                    target="#{manterLancamentosBean.lancamentoItemAux}" />
				            </p:commandButton>
				        </p:column>
				    </p:dataTable>
				    <p align="right">
						 <h:outputLabel style="font-size:14px;" value="Total: " />
						 <h:outputText value="#{manterLancamentosBean.totalItens}" converter="moedaDoubleConverter" />
					</p>
				    
				<br />
			
				<table cellspacing="10" width="100%">
					<tr>
						<td>
							<h:outputLabel value="Vinculo:" />
							<br />
							<h:selectOneRadio id="vinculoLancamento" 
									value="#{manterLancamentosBean.lancamento.tipoVinculo}" >
								    <f:selectItems value="#{manterLancamentosBean.tiposVinculos}" />
								    <f:ajax event="change" listener="#{manterLancamentosBean.limparVinculo}" />
								    <f:ajax event="change" render="lancamentoForm" />
							</h:selectOneRadio>
						</td>
					</tr>
				</table>
				
				<table cellspacing="10" width="100%" id="tabelaCliente">
					<tr>
						<td>
							<h:outputLabel for="fornecedor" value="Cliente:" />
							<br />
							<p:autoComplete id="fornecedor" minQueryLength="2" label="Placa" maxlength="100"
							 	value="#{manterLancamentosBean.lancamento.pessoa}"
	                    		completeMethod="#{manterLancamentosBean.consultarPessoasPorNome}" 
	                    		var="forn" itemLabel="#{forn.nmPessoa}" itemValue="#{forn}"	
	                    		converter="pessoaConverter"
	                    		selectListener="#{manterLancamentosBean.handleSelectPessoa}"
	                    		onSelectUpdate="cpfFornecedor, foneFornecedor, celularFornecedor"
	                    		style="width:250px;" /> 
							
							<p:commandButton update="clienteFornecedorModalForm"
								onclick="dlgClienteFornecedor.show();" image="ui-icon ui-icon-plusthick" 
								style="margin-left:5px;" >
								<f:setPropertyActionListener value="#{false}"
			                    	target="#{manterClientesFornecedoresBean.cadastroDespachante}" />
		                    	<f:setPropertyActionListener value="#{true}"
			                    	target="#{manterClientesFornecedoresBean.telaLancamento}" />
							</p:commandButton>
						</td>
						<td>
							<h:outputLabel for="cpfFornecedor" value="CPF:" />
							<br />
							<p:inputText id="cpfFornecedor" disabled="true" readonly="true" styleClass="ui-state-disabled"
								value="#{manterLancamentosBean.lancamento.pessoa.cpfCnpj}"
								label="CPF" />
						</td>
						<td>
							<h:outputLabel for="foneFornecedor" value="Fone:" />
							<br />
							<p:inputText id="foneFornecedor" disabled="true" readonly="true" styleClass="ui-state-disabled"
								value="#{manterLancamentosBean.lancamento.pessoa.meioComunicacao.nrTelefone}"
								label="Fone" />
						</td>
						<td>
							<h:outputLabel for="celularFornecedor" value="Celular:" />
							<br />
							<p:inputText id="celularFornecedor" disabled="true" readonly="true" styleClass="ui-state-disabled"
								value="#{manterLancamentosBean.lancamento.pessoa.meioComunicacao.nrCelular}"
								label="Celular" />
						</td>
					</tr>
				</table>
				
				<table cellspacing="10" width="100%" id="tabelaVeiculo">
					<tr>
						<td>
							<h:outputLabel for="placa" value="Placa:" />
							<br />
							<p:autoComplete id="placa" minQueryLength="2" label="Placa"
							 	value="#{manterLancamentosBean.lancamento.veiculo}"
	                    		completeMethod="#{manterLancamentosBean.consultarVeiculosPorPlaca}" 
	                    		var="veic" itemLabel="#{veic.nrPlaca}" itemValue="#{veic}"	
	                    		converter="veiculoConverter"
	                    		selectListener="#{manterLancamentosBean.handleSelectVeiculo}"
	                    		onSelectUpdate="fabricante, modelo, anoFabricacao, anoModelo, cor" /> 
							
							<p:commandButton onclick="dlgVeiculo.show();" 
								image="ui-icon ui-icon-plusthick" style="margin-left:5px;" >
								<f:setPropertyActionListener value="#{true}"
			                    	target="#{manterVeiculosBean.telaLancamento}" />
							</p:commandButton>
						</td>
						<td>
							<h:outputLabel for="fabricante" value="Fabricante:" />
							<br />
							<p:inputText id="fabricante" disabled="true" readonly="true" styleClass="ui-state-disabled"
								value="#{manterLancamentosBean.lancamento.veiculo.fabricante.nmFabricante}"
								label="Fabricante" style="width:220px;" />
						</td>
						<td>
							<h:outputLabel for="modelo" value="Modelo:" />
							<br />
							<p:inputText id="modelo" disabled="true" readonly="true" styleClass="ui-state-disabled"
								value="#{manterLancamentosBean.lancamento.veiculo.modelo.nmModelo}"
								label="Modelo" style="width:200px;" />
						</td>
					</tr>
					
					<tr>
						<td>
							<h:outputLabel for="anoFabricacao" value="Ano de fabricação:" />
							<br />
							<p:inputText id="anoFabricacao" disabled="true" readonly="true" styleClass="ui-state-disabled"
								value="#{manterLancamentosBean.lancamento.veiculo.anoFabricacao}" label="Ano"
								style="width:45px;" />
						</td>
						<td>
							<h:outputLabel for="anoModelo" value="Ano do modelo:" />
							<br />
							<p:inputText id="anoModelo" disabled="true" readonly="true" styleClass="ui-state-disabled"
								value="#{manterLancamentosBean.lancamento.veiculo.anoModelo}" label="Ano"
								style="width:45px;" />
						</td>
						<td>
							<h:outputLabel for="cor" value="Cor:" />
							<br />
							<p:inputText id="cor" disabled="true" readonly="true" styleClass="ui-state-disabled"
								value="#{manterLancamentosBean.lancamento.veiculo.cor}" label="Cor" />
						</td>
					</tr>
				</table>
				
				<br />
				
				<table cellspacing="10" width="100%">
					<tr>
						<td>
							<h:outputLabel for="categoria" value="* Categoria:" />
							<br />
							<h:selectOneMenu id="categoria" label="Categoria" style="width:280px;"
								styleClass="ui-inputfield ui-widget ui-state-default ui-corner-all"
								value="#{manterLancamentosBean.lancamento.categoria.id}" >
							    <f:selectItems value="#{manterLancamentosBean.todasCategorias}" var="cat"
							    	itemValue="#{cat.value}" itemLabel="#{cat.label}"/>
							</h:selectOneMenu>
						</td>
					</tr>
					<tr>
						<td>
							<h:outputLabel for="conta" value="* Conta:" />
							<br />
							<h:selectOneMenu id="conta" label="Conta" style="width:280px;"
								styleClass="ui-inputfield ui-widget ui-state-default ui-corner-all"
								value="#{manterLancamentosBean.lancamento.conta.id}" >
							    <f:selectItems value="#{manterLancamentosBean.todasContas}" var="cont"
							    	itemValue="#{cont.value}" itemLabel="#{cont.label}"/>
							</h:selectOneMenu>
						</td>
					</tr>
					<tr>
						<td>
							<h:outputLabel for="formaPagamento" value="* Forma de pagamento:" />
							<br />
							<h:selectOneMenu id="formaPagamento" label="Forma de pagamento" style="width:280px;"
								styleClass="ui-inputfield ui-widget ui-state-default ui-corner-all"
								value="#{manterLancamentosBean.lancamento.formaPagamento.id}" >
							    <f:selectItems value="#{manterLancamentosBean.todasFormasPagamento}" var="formaPag"
							    	itemValue="#{formaPag.value}" itemLabel="#{formaPag.label}"/>
							</h:selectOneMenu>
						</td>
					</tr>
					
				</table>
				
				<h:panelGroup rendered="#{!manterLancamentosBean.alteracao}">
				<br />
				<table cellspacing="10" width="100%">
					<tr>
						<td>
							<h:outputLabel for="repetir" value="Repetir " />
							<p:spinner id="repetir" style="width:45px;"
								value="#{manterLancamentosBean.repetir}" />
								
							<h:outputLabel for="periodo" value=" vezes a cada " />
							<h:selectOneMenu id="periodo" style="width:60px;"
								styleClass="ui-inputfield ui-widget ui-state-default ui-corner-all"
									value="#{manterLancamentosBean.periodo}">
								    <f:selectItems value="#{manterLancamentosBean.consultarPeriodos}" />
							</h:selectOneMenu>
						</td>
					</tr>
				</table>
				</h:panelGroup>
				
				<br />
				
				<table cellspacing="10" width="100%">
					<tr>
						<td>
							<h:selectBooleanCheckbox id="diaUtil" 
								value="#{manterLancamentosBean.lancamento.diaUtil}" />
							<h:outputLabel for="diaUtil" 
								value=" Passar para o próximo dia util se cair em um sábado, domingo ou feriado" />
						</td>
					</tr>
				</table>
				
			</p:panel>
			
			<br />
			<div align="right">
				<p:commandButton id="btn" value="Salvar" update="msgSistema, lancamentoForm, listaCadastroLanc" 
					actionListener="#{manterLancamentosBean.cadastrarLancamento}" style="margin-left:5px;" />
				<p:commandButton id="botaoLimpar" value="Limpar" update="msgSistema, lancamentoForm" 
					 actionListener="#{manterLancamentosBean.limparCampos}" style="margin-left:5px;" />
			</div>
		
		</h:form>
		
		<h:form id="listaCadastroLanc">
			
			<br />
			<br />
			<p:accordionPanel autoHeight="false" collapsible="true" style="padding:0;">
			<p:tab title="Lançamentos">
			
				<p:dataTable id="listaLancamentosLanc" var="lancamento" 
					widgetVar="lancamentosTableLanc"
					paginator="true" rows="10" paginatorPosition="bottom"
					value="#{manterLancamentosBean.todosLancamentos}"
		            emptyMessage="Nenhum lançamento encontrado">
		            
		            <p:column style="width:140px;" filterBy="#{lancamento.tipo.label}"
			                headerText="Tipo de lançamento" filterMatchMode="contains">
			            <h:outputText value="#{lancamento.tipo.label}" />
			        </p:column>
			        
			        <p:column style="width:80px;" filterBy="#{lancamento.dtLancamento}"
			                headerText="Data do lançamento" filterMatchMode="contains">
			            <h:outputText value="#{lancamento.dtLancamento}" >
			            	<f:convertDateTime pattern="dd/MM/yyyy" />
			            </h:outputText>
			        </p:column>
			        
			        <p:column style="width:80px;" filterBy="#{lancamento.dtVencimento}"
			                headerText="Data do vencimento" filterMatchMode="contains">
			            <h:outputText value="#{lancamento.dtVencimento}" >
			            	<f:convertDateTime pattern="dd/MM/yyyy" />
			            </h:outputText>
			        </p:column>
			        
			        <p:column style="width:130px;" filterBy="#{lancamento.categoria.nmCategoria}"
			                headerText="Categoria" filterMatchMode="contains">
			            <h:outputText value="#{lancamento.categoria.nmCategoria}" />
			        </p:column>
			        
			        <p:column style="width:130px;" filterBy="#{lancamento.conta.contaCompleto}"
			                headerText="Conta" filterMatchMode="contains">
			            <h:outputText value="#{lancamento.conta.contaCompleto}" />
			        </p:column>
			        
			        <p:column style="width:90px;" filterBy="#{lancamento.valorTotal}"
			                headerText="Valor Total" filterMatchMode="contains">
			            <h:outputText value="#{lancamento.valorTotal}" converter="moedaDoubleConverter" />
			        </p:column>
			        
			        <p:column style="width:100px;" headerText="Ações">
			            <p:commandButton update="lancamentoDetalhesForm" image="ui-icon ui-icon-search" immediate="true"
			            	oncomplete="dialogLancamentoDetalhes.show()">
			               <f:setPropertyActionListener value="#{lancamento}"
			                    target="#{manterLancamentosBean.lancamentoAux}" />
			            </p:commandButton>
			            <p:commandButton update="lancamentoForm" image="ui-icon ui-icon-pencil" 
			               actionListener="#{manterLancamentosBean.abrirAlteracao}" immediate="true" >
			               <f:setPropertyActionListener value="#{lancamento}" 
			                    target="#{manterLancamentosBean.lancamento}" />
			            </p:commandButton>
			            <p:commandButton oncomplete="confirmation.show()" image="ui-icon ui-icon-trash" immediate="true">
			               <f:setPropertyActionListener value="#{lancamento}"
			                    target="#{manterLancamentosBean.lancamentoAux}" />
			            </p:commandButton>
			        </p:column>
			        
			    </p:dataTable>
			    
		    </p:tab>
			</p:accordionPanel>
		    
		</h:form>
		
		<h:form>
		    <p:confirmDialog message="Deseja excluir o registro?"
						header="Confirmação" severity="alert" widgetVar="confirmation">
						
				<p:commandButton value="Sim" update="lancamentoForm, msgSistema, listaCadastroLanc" 
							oncomplete="confirmation.hide()" immediate="true"
							actionListener="#{manterLancamentosBean.excluirLancamento}" />
				<p:commandButton value="Não" onclick="confirmation.hide()" type="button" immediate="true" /> 
						
			</p:confirmDialog>
		</h:form>
		
		<h:form>
		    <p:confirmDialog message="Deseja excluir o item?"
						header="Confirmação" severity="alert" widgetVar="confirmationItem">
						
				<p:commandButton value="Sim" update="lancamentoForm, msgSistema, listaCadastroLanc" 
							oncomplete="confirmationItem.hide()" immediate="true"
							actionListener="#{manterLancamentosBean.excluirLancamentoItem}" />
				<p:commandButton value="Não" onclick="confirmationItem.hide()" type="button" immediate="true" /> 
						
			</p:confirmDialog>
		</h:form>
		
	<ui:include src="lancamentodetalhes.xhtml" />
	<ui:include src="../manterveiculos/veiculomodal.xhtml" />
	<ui:include src="../clientesfornecedores/clientefornecedormodal.xhtml" />

	</ui:define>

</ui:composition>
</html>